Skip to content

Fix a miscompile that occurs when reading a matrix contained in a struct with no sibling fields#8568

Open
aclysma wants to merge 2 commits into
microsoft:mainfrom
aclysma:user/aclysma/fix-matrix-read-miscompile
Open

Fix a miscompile that occurs when reading a matrix contained in a struct with no sibling fields#8568
aclysma wants to merge 2 commits into
microsoft:mainfrom
aclysma:user/aclysma/fix-matrix-read-miscompile

Conversation

@aclysma

@aclysma aclysma commented Jun 19, 2026

Copy link
Copy Markdown

Fix a miscompile that occurs when reading a matrix contained in a struct with no sibling fields. The expected behavior is that each load instruction is at a 4 byte offset, but observed behavior is that Loads are always at 0 offset.

This was introduced in commit 909c552 (merged 2025-03-17), and it's observable regressed between the releases v1.8.2502 and v1.8.2505. The regression was tested as still live in v1.10.2605.24 and current HEAD.

This change adds a test that reproduces the problem. ClangHLSLTests shows 2 failures with this test pre-patch and 0 failures after the patch.

…uct with no sibling fields. The expected behavior is that each load instruction is at a 4 byte offset, but observed behavior is that Loads are always at 0 offset.

This was introduced in commit 909c552 (merged 2025-03-17), and it's observable regressed between the releases v1.8.2502 and v1.8.2505. The regression was tested as still live in v1.10.2605.24 and current HEAD.

This change adds a test that reproduces the problem. ClangHLSLTests shows 2 failures with this test pre-patch and 0 failures after the patch.
@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

✅ With the latest revision this PR passed the C/C++ code formatter.

@aclysma

aclysma commented Jun 19, 2026

Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree

@aclysma

aclysma commented Jun 19, 2026

Copy link
Copy Markdown
Author

Just FYI, I'm really not familiar with the code in DXC. I have high confidence in the added test, and that this was a legitimate bug and when the regression occurred. I don't have confidence that this is the "best" fix and am very happy for someone who is familiar with this area to determine the right way to fix it. (But it does resolve the added test without breaking other tests.)

@aclysma

aclysma commented Jun 19, 2026

Copy link
Copy Markdown
Author

I put a godbolt repro here: https://godbolt.org/z/bG5reh3rh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: New

Development

Successfully merging this pull request may close these issues.

1 participant